package fun.tan90.easy.binlog.manager.model.vo;

import lombok.Builder;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 实体类。
 *
 * @author 陈浩杰
 * @since 2023-09-12
 */
@Data
@Builder
public class BinlogOutputRuleVo implements Serializable {

    /**
     * 规则ID
     */
    private String ruleId;

    /**
     * 输出库名称正则
     */
    private String schemaRegular;

    /**
     * 输出表名称正则
     */
    private String tableRegular;

    /**
     * 规则状态 1 正常 0 停用
     */
    private String ruleStatus;
    private String ruleStatusCn;

    /**
     * 输出方式详情
     */
    private List<BinlogMasterOutputRuleDetail> details;

    /**
     * 创建时间
     */
    private Date createTime;

    @Data
    @Builder
    public static class BinlogMasterOutputRuleDetail {

        /**
         * 主键
         */
        private String id;

        /**
         * 输出目标方名称
         */
        private String outputWayId;

        /**
         * 输出目标方名称
         */
        private String outputName;

        /**
         * 输出类型 1 mqtt 2 webhook 3 kafka 4 rocketmq 5 mysql
         */
        private String outputType;

        private String outputTypeCn;

        /**
         * 成功次数
         */
        private Integer success;

        /**
         * 更新时间
         */
        private Date countSuccessTime;

        /**
         * 失败次数
         */
        private Integer error;

        /**
         * 更新时间
         */
        private Date countErrorTime;

        /**
         * 创建时间
         */
        private Date createTime;
    }

}
